package com.changgou.web.order.controller;

import com.changgou.order.feign.CartFeign;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Map;

/**
 * 购物车页面渲染
 */
@Controller
@RequestMapping("/wcart")
public class CartController {

    @Autowired
    private CartFeign cartFeign;

    /**
     * 查询购物车里列表数据, 返回到购物车页面
     * @return
     */
    @GetMapping("/list")
    public String list(Model model) {
        //通过调用订单业务微服务的feign接口, 查询购物车列表数据并返回到页面
        Map<String, Object> resultMap = cartFeign.list();

        model.addAttribute("result", resultMap);
        return "cart";
    }

    /**
     * 添加商品到购物车
     * @param skuId 购买商品的库存id
     * @param num   购买数量
     * @return
     */
    @GetMapping("/add")
    public String add(@RequestParam(value = "skuId") String skuId, @RequestParam(value = "num")Integer num) {
        //调用订单业务微服务的feign接口完成, 添加商品到购物车功能
        cartFeign.add(skuId, num);
        //重定向到购物车列表查询方法
        return "redirect:http://web.changgou.com:8001/api/wcart/list";
    }

    /**
     * 从购物车中删除购物项
     * @param skuId     商品的库存id
     * @return
     */
    @RequestMapping("/delete")
    public String delete(@RequestParam(value = "skuId") String skuId) {
        //通过feign接口调用订单微服务中删除功能
        cartFeign.delete(skuId);
        //重定向到购物车列表查询方法
        return "redirect:http://web.changgou.com:8001/api/wcart/list";
    }


    /**
     * 购物车列表复选框状态, 勾选与取消勾选
     * @param skuId     勾选商品的库存id
     * @param checked   勾选与取消勾选状态
     * @return
     */
    @GetMapping("/updateChecked")
    public String updateChecked(@RequestParam(value = "skuId") String skuId,
                                @RequestParam(value = "checked")Boolean checked) {

        cartFeign.updateChecked(skuId, checked);

        //重定向到购物车列表查询方法
        return "redirect:http://web.changgou.com:8001/api/wcart/list";
    }
}
